//package com.vf.admin.common;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.serializer.SerializerFeature;
//import com.vf.admin.client.common.RedisKeys;
//import com.vf.admin.common.redis.RedisUtil;
//import com.vf.admin.fh.controller.JieDanAction;
//import com.vf.admin.fh.controller.QingLiAction;
//import com.vf.admin.fh.entity.RenWu;
//import com.vf.admin.fh.service.RenWuService;
//import com.vf.admin.utils.StringEx;
//import org.apache.log4j.Logger;
//import org.springframework.beans.factory.annotation.Autowired;
//
//import javax.annotation.Resource;
//import javax.management.MBeanServer;
//import javax.management.MalformedObjectNameException;
//import javax.management.ObjectName;
//import javax.management.Query;
//import java.lang.management.ManagementFactory;
//import java.util.*;
//
//public class ShiPinTimer {
//    public static Logger log = Logger.getLogger(ShiPinTimer.class);
//    public static boolean QUANTU_TONGGUO = false;
//    public static boolean QINGLI_HUANCUN = false;
//    public static String TISHI = "服务器维护中，大约需要2到5分钟左右!";
//    @Autowired
//    public RenWuService renWuService;
//    @Resource
//    private RedisUtil redisUtil;
//
//    /**
//     * 定时器执行
//     */
//    public void initStart(){
//        Date date = new Date();
//        try{
//            String port = ShiPinTimer.getLocalPort();
//            System.out.println("当前服务器端口号:"+port);
//            if(port.trim().equals("8080")){
//                webInitData();
//
//                Timer timer = new Timer();
//
//                //删除两天以前的接单信息、收入明细信息
//                MyTask1 canShuTask1 = new MyTask1();
//                String nyr = StringEx.getStringYgMgD(date);
//                Date startTime1 = StringEx.parseDateAndTime(nyr+" 05:01:00");
//                timer.scheduleAtFixedRate(canShuTask1,startTime1,24*60*60*1000);//24*60*60*1000
//
//                //通过所有已完成订单
//                MyTask2 canShuTask2 = new MyTask2();
////				timer.scheduleAtFixedRate(canShuTask2,120*1000,3*60*60*1000);//24*60*60*1000
////				timer.scheduleAtFixedRate(canShuTask2,500*1000,1*60*60*1000);//24*60*60*1000
//                timer.scheduleAtFixedRate(canShuTask2,200*1000,1*60*60*1000);//24*60*60*1000
//            }
//        }catch(Exception e){
//            e.printStackTrace();
//        }
//    }
//
//    /**
//     * 初始化数据
//     */
//    public void webInitData(){
//        try{
//            List<RenWu> cacheAllList = null;
//            boolean exists = redisUtil.hasKey(RedisKeys.CACHE_RENWULISTALL);
//            if(!exists){
//                Map<String, Object> paraMap = new HashMap<String, Object>();
//                paraMap.put("state",Constants.RENWU_STATE_SHTG);//审核通过的任务
//                paraMap.put("apitchaxun",1);//接口查询
//                cacheAllList = renWuService.find(paraMap, null);
//                redisUtil.set(RedisKeys.CACHE_RENWULISTALL, JSON.toJSONStringWithDateFormat(cacheAllList, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteDateUseDateFormat));
//                if(cacheAllList!=null && cacheAllList.size()>0){
//                    for(RenWu renWu : cacheAllList){
//                        redisUtil.set(RedisKeys.CACHE_RENWU_ID_MAP+renWu.getId(), JSON.toJSONStringWithDateFormat(renWu, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteDateUseDateFormat));
//                    }
//                }
//            }
//        }catch(Exception e){
//            e.printStackTrace();
//        }
//    }
//
//    static class MyTask1 extends java.util.TimerTask {
//        @Override
//        public void run() {
//            try {
//                System.out.println("清理缓存 定时器启动  点击...");
//                Calendar c = Calendar.getInstance();
//                int hour = c.get(Calendar.HOUR_OF_DAY);
//                int minute = c.get(Calendar.MINUTE);
//                System.out.println("清理缓存   hour:"+hour+",minute:"+minute);
//                if(hour == 5 && minute == 1){
//                    if(QINGLI_HUANCUN){
//                        return ;
//                    }
//                    QINGLI_HUANCUN = true;
//                    try {
//                        //延迟30秒再执行，防止出现缓存出现空的情况
//                        System.out.println("清理缓存 正在等待30秒钟...............");
//                        Thread.sleep(30*1000);
//                        System.out.println("清理缓存   重构缓存定时器执行");
//                        QingLiAction qingLiAction = new QingLiAction();
//                        int retInt = qingLiAction.clearMingXiContentInt();
//                        if(retInt == 1){
//                            retInt = qingLiAction.clearJieDanContent();
//                            if(retInt == 1){
//                                retInt = qingLiAction.clearRenWuContent();
//                                //暂时屏蔽，以后服务器卡了 再删除
////										if(retInt == 1){
////											qingLiAction.clearTiXianContent();
////										}
//                            }
//                        }
//                        QINGLI_HUANCUN = false;
//                    } catch (Exception e) {
//                        log.info("定时器执行异常:"+e);
//                        QINGLI_HUANCUN = false;
//                    }
//                }
//            } catch (Exception e) {
//                QINGLI_HUANCUN = false;
//            }
//        }
//    }
//
//    /**
//     * 审核通过所有接单信息
//     */
//    static class MyTask2 extends java.util.TimerTask {
//        @Override
//        public void run() {
//            try {
//                System.out.println("审核通过   定时器启动  点击...");
//                if(QUANTU_TONGGUO){
//                    System.out.println("审核通过   定时器启动  已经正在执行中，本次无法执行!");
//                    return ;
//                }
//
//                //正在执行清理任务的时候  不运行审核通过
//                if(QINGLI_HUANCUN){
//                    System.out.println("审核通过   清理缓存执行中 本次无法执行!");
//                    return ;
//                }
//                QUANTU_TONGGUO = true;
//                Thread.sleep(15000);
//                Calendar c = Calendar.getInstance();
//                int hour = c.get(Calendar.HOUR_OF_DAY);
//                int minute = c.get(Calendar.MINUTE);
//                System.out.println("审核通过   hour:"+hour+",minute:"+minute);
//                //自动审核
//                try{
//                    JieDanAction jieDanAction = new JieDanAction();
//                    jieDanAction.tongGuoContent();
//                    QUANTU_TONGGUO = false;
//                }catch(Exception e){
//                    QUANTU_TONGGUO = false;
//                }
//            } catch (Exception e) {
//                QUANTU_TONGGUO = false;
//            }
//        }
//    }
//
//
//
//    /**
//     * @return
//     * @throws MalformedObjectNameException 获取当前tomcat机器的端口号
//     */
//    public static String getLocalPort() throws MalformedObjectNameException {
//        MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
//        Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"),
//                Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
//        String port = objectNames.iterator().next().getKeyProperty("port");
//        return port;
//    }
//}
